package cn.jetpiece.cloud.joss.app.modular.object.service;

import com.baomidou.mybatisplus.extension.service.IService;
import cn.jetpiece.cloud.joss.api.object.model.params.CreateBucketParam;
import cn.jetpiece.cloud.joss.api.object.model.params.UpdateBucketParam;
import cn.jetpiece.cloud.joss.api.object.model.query.BucketQuery;
import cn.jetpiece.cloud.joss.api.object.model.result.BucketResult;
import cn.jetpiece.cloud.joss.app.modular.object.entity.Bucket;
import cn.jetpiece.cloud.joss.app.modular.object.model.BucketInfo;
import cn.jetpiece.cloud.model.page.PageResult;

/**
 * <p>
 * 桶 服务类
 * </p>
 *
 * @author XuJZ
 * @since 2020-09-05
 */
public interface BucketService extends IService<Bucket> {

    /**
     * 新增
     *
     * @param param 新增参数
     * @return 返回结果
     */
    boolean add(CreateBucketParam param);

    /**
     * 更新
     *
     * @param param 修改参数
     * @return 返回结果
     */
    boolean update(UpdateBucketParam param);

    /**
     * 删除
     *
     * @param id 主键
     * @return 返回结果
     */
    boolean delete(String id);

    /**
     * 分页查询
     *
     * @param param 查询条件
     * @return 返回结果
     */
    PageResult<BucketResult> page(BucketQuery param);

    /**
     * 获取桶信息
     *
     * @param bucketName 桶名
     * @return 桶信息
     */
    BucketInfo getBucket(String bucketName);

}
